iOS适配https(一) -- AFNetworking
前言
根据苹果要求,2017必须要适配https。服务器端配置https需要一堆东西,这里就不详述了,主要介绍客户端的问题,而且是最简单的配置方式。
有的没有配置证书只是简单设置了网络请求的security也成功了,这里介绍的方式是配置证书的,更安全更有保障度。
这里先介绍AFNetworking的基本配置以及相关证书。
一、配置证书
1、服务器端证书配置好后可以给客户端一个证书,后缀是.crt的,拿到手后转成.der或.cer格式
.crt转.der方法 >
openssl x509 -in Users/Jeffrey/ca.crt -out /Users/Jeffrey/ca.der -outform DER
.crt转.cer方法
openssl x509 -in /Users/Jeffrey/ca.crt -out /Users/Jeffrey/ca.cer -outform DER
这个方法没有测试成功,因为我们后台人员没有给我有效的证书。这个方法如果报错的话需要做相关验证。参考:https双向认证iOS客户端处理
2、直接终端生成对应的cer证书
这个方式会跳过服务器端给的证书一步,因为很多时候你们都不清楚到底要哪个证书,也不知道哪里会出现错误。
直接看命令:
openssl s_client -connect www.baidu.com:443 </dev/null 2>/dev/null | openssl x509 -outform DER > https.cer
百度的域名换成自己公司的,注意不要加http或https。如果贵公司的域名的https还没有配置好,那么这步也会是无效的,会报错。
Expecting: TRUSTED CERTIFICATE
这个方法亲测有效!
二、证书导入
直接拖进去,记住这步。否则会没有读取到证书文件。
三、AFNetworking单向验证设置
由于网络库没有更新,所以这里使用的还是AFNetworking 2.6.0的相关配置,其实最近的也是一致的,配置的都是AFSecurityPolicy,是一致的。
1 | + (AFSecurityPolicy*)customSecurityPolicy |
这里建议统一设置,否则每次请求再单独添加会比较繁琐。
1 | _requestManager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[KYConfig defaultConfig].serverHostURL]; |
关于webView以及SDWebImage等后续篇章会继续介绍,敬请关注。
下一篇:
相关参考:
https双向认证iOS客户端处理
iOS 迁移到HTTPS(自建证书+单向验证+AF3.0+WKWebView+SDWebImage)
如果需要Demo请留言,会在后续版本中添加。